package controllers;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import model.Sys_menu;
import model.Sys_sub_menu;
import model.V_menu;

import com.et.mvc.JsonView;

public class Sys_sub_menuController extends ApplicationController {
	/**
	 * 返回全部功能
	 */
	public JsonView getSys_sub_menus(int rows, int page) throws Exception {
		String cond = "1=1";
		List<Object> tmpArgs = new ArrayList<Object>();
		Object[] args = tmpArgs.toArray();
		//long total = Sys_sub_menu.count(Sys_sub_menu.class, cond, args); // 查询单位总数
		List<V_menu> list = V_menu.findAll(V_menu.class);
		Integer total = list.size();
		List<V_menu> sys_sub_menus = V_menu.findAll(V_menu.class,cond, args,"id", rows, (page - 1) * rows); // 查询单位的一页资料
				// 构造JSON用的数据结构并返回JSON视图
		Map<String, Object> result = new HashMap<String, Object>();
		result.put("total", total);
		result.put("rows", sys_sub_menus);
		return new JsonView(result);
	}
	
	public JsonView getSys_sub_menus(int rows, int page,
			Integer id,
			String func_name
			) throws Exception {
		
		String cond = "1=1";
		List<Object> tmpArgs = new ArrayList<Object>();
		if (id != null && !id.equals("")) {	
			cond += " and id like ?";
			tmpArgs.add("%" + id + "%");
		}
		if (func_name != null && !func_name.equals("")) {	
			cond += " and func_name like ?";
			tmpArgs.add("%" + func_name + "%");
		}
//		Object[] args = tmpArgs.toArray();
//		V_menu.findBySql(V_menu.class, "select * from v_menu");
//		long total = Sys_sub_menu.count(Sys_sub_menu.class, cond, args);	
		List<V_menu> list = V_menu.findBySql(V_menu.class, "select * from v_menu");
		Integer total = list.size();
		String sql = getPageSql("select * from v_menu",page,rows);
		List<V_menu> devices =V_menu.findBySql(V_menu.class,sql);
//		List<Sys_sub_menu> devices = Sys_sub_menu.findAll(Sys_sub_menu.class, cond, args, "id", rows, (page-1)*rows);	
		
		Map<String, Object> result = new HashMap<String, Object>();
		result.put("total", total);
		result.put("rows", devices);
		return new JsonView(result);
	}
	public JsonView getSys_sub_menu(int id) throws Exception {
		Sys_sub_menu sys_sub_menu = Sys_sub_menu.find(Sys_sub_menu.class, id);
		return new JsonView(sys_sub_menu);
	}

	/**
	 * 保存新建功能
	 */
	public JsonView save(Sys_sub_menu sys_sub_menu) throws Exception {
		sys_sub_menu.save();
		JsonView view = new JsonView("success:true");
		view.setContentType("text/html;charset=utf-8");
		return view;
	}

	/**
	 * 保存修改的功能
	 */
	public JsonView update(int id) throws Exception {
		Sys_sub_menu sys_sub_menu = Sys_sub_menu.find(Sys_sub_menu.class, id);
		updateModel(sys_sub_menu);
		sys_sub_menu.save();
		JsonView view = new JsonView("success:true");
		view.setContentType("text/html;charset=utf-8");
		return view;
	}

	/**
	 * 删除指定的功能
	 */
	public JsonView destroy(int id) throws Exception {
		Sys_sub_menu sys_sub_menu = Sys_sub_menu.find(Sys_sub_menu.class, id);
		sys_sub_menu.destroy();
		JsonView view = new JsonView("success:true");
		view.setContentType("text/html;charset=utf-8");
		return view;
	}

	/**
	 * 返回全部主功能
	 */
	public JsonView getSys_menus() throws Exception {
		List<Sys_menu> units = Sys_menu.findAll(Sys_menu.class,"1=1",new Object[]{}); // 查询单位的一页资料
		JsonView view = new JsonView(units);
		// 构造JSON用的数据结构并返回JSON视图
		return view;
	}
}
